"""
此文件定义数据类型
tdengine类型:
    TIMESTAMP(时间戳)
    TINYINT(8位整数-128~127)
    SMALLINT(16位整数-32768~32767)
    INT(32位整数)
    BIGINT(64位整数)
    FLOAT(32位浮点数)
    DOUBLE(64位浮点数)
    BOOL(布尔)
    BINARY(自定义ascii)
    NCHAR(自定义字符串)
    JSON(仅tag可使用)
"""
from sqlalchemy import types as sqltypes
from sqlalchemy.util import compat


# 时间戳类型
class TIMESTAMP(sqltypes.DateTime):

    __visit_name__ = 'TIMESTAMP'


# 8位整数
class TINYINT(sqltypes.Integer):

    __visit_name__ = 'TINYINT'


# 16位整数
class SMALLINT(sqltypes.Integer):

    __visit_name__ = 'SMALLINT'


# 32位整数
class INT(sqltypes.Integer):

    __visit_name__ = 'INT'


# 64位整数
class BIGINT(sqltypes.Integer):

    __visit_name__ = 'BIGINT'


# 32位浮点数
class FLOAT(sqltypes.Float):

    __visit_name__ = 'FLOAT'


# 64位浮点数
class DOUBLE(sqltypes.Float):

    __visit_name__ = 'DOUBLE'


# 布尔
class BOOL(sqltypes.Boolean):

    __visit_name__ = 'BOOL'


# 自定义ascii
class BINARY(sqltypes.String):

    __visit_name__ = 'BINARY'


# 自定义字符串
class NCHAR(sqltypes.String):

    __visit_name__ = 'NCHAR'


# JSON(仅tag可使用)
class JSON(sqltypes.JSON):

    __visit_name__ = 'JSON'
